PCA X9-2 – 3.0.2-b1010555: Changed Availability Domain Identifier

Following the application of the most recent patch set to our Oracle Private Cloud Appliance PCA X9-2, currently on version 3.0.2-b1010555, we encountered an issue with our OCI CLI script, which has been in use for some time to generate a block volume.

It’s important to note that the script configures parameters such as profile, certificate, and compartment through the use of variables.

$ oci bv volume create --display-name <my-display-name> --size-in-gbs 50 --backup-policy-id <my-backup-policy-id> --availability-domain ad1 --profile $P  --cert-bundle $Z --compartment-id $C
ServiceError:
{
"client_version": "Oracle-PythonSDK/2.93.1, Oracle-PythonCLI/3.23.2",
"code": "NotAuthorizedOrNotFound",
"logging_tips": "Please run the OCI CLI command using --debug flag to find more debug information.",
"message": "Authorization failed or requested resource not found.",
"opc-request-id": "D197444079544092926787B71D9F4F35",
"operation_name": "create_volume",
"request_endpoint": "POST https://<my-pca>/20160918/volumes",
"status": 404,
"target_service": "blockstorage",
"timestamp": "2024-01-23T10:19:28.647034+00:00",
"troubleshooting_tips": "See [https://docs.oracle.com/iaas/Content/API/References/apierrors.htm] for more information about resolving this error. If you are unable to resolve this issue, run this CLI command with --debug option and contact Oracle support and provide them the full error message."
}

The “NotAuthorizedOrNotFound” return code indicates that either a) the user’s IAM API key is incorrect, or b) one of the specified parameters is unavailable.

Given that answer a) has been ruled out, as basic commands such as oci bv volume list are functioning correctly, the focus should shift to answer b). Among the parameters used, the one is set by clear text and not by OCID is for availability domain.

Availability Domain in PCA Version 3.0.2-b892153

In this release, the identifier for the availability domain is labeled as ‘ad1’:

$  oci iam availability-domain list --profile $P --cert-bundle $Z
/usr/bin/oracle-cli/lib64/python3.6/site-packages/oci/_vendor/httpsig_cffi/sign.py:10: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Pyhon core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
  from cryptography.hazmat.backends import default_backend  # noqa: F401
{
  "data": [
    {
      "compartment-id": "ocid1.tenancy.AK00958122.PCA01.01234657890abcdefghijklmonpqrstuvwxyz",
      "id": "ocid1.ad.AK00958122.PCA01.01234657890abcdefghijklmonpqrstuvwxyz",
      "name": "ad1"
    }
  ]
}

Availability Domain in PCA Version 3.0.2-b1010555

The designation for the availability domain has been updated to ‘AD-1’:

$ oci iam availability-domain list --profile $P --cert-bundle $Z
{
  "data": [
    {
      "compartment-id": "ocid1.tenancy.AK00958118.pca02.01234657890abcdefghijklmonpqrstuvwxyz",
      "id": "ocid1.ad.AK00958118.pca02.01234657890abcdefghijklmonpqrstuvwxyz",
      "name": "AD-1"
    }
  ]
}

Solution

Update the --availability-domain parameter in the command to the newly provided label ‘AD-1’ to restore functionality.